Many prior art computer systems include computer controlled display systems which utilize bit-mapped displays which typically present a graphic image to the user of the computer system. In these computer controlled display systems, a bit-mapped image appears on a display means, such as a cathode ray tube (CRT) or liquid crystal display (LCD); the bit-mapped image is typically generated and stored in a frame buffer which acts as a memory for the display system. In these display systems, the user typically interacts with the computer system by manipulating a cursor control means, such as a mouse. The user uses the mouse to position a cursor on the bit-mapped image to select options which are displayed under the control of the computer system on the display means.
Advances in computer graphics have extended the range of capabilities for the user. Objects can now be displayed in three-dimensional (3D) representation, for example in wireframe, solid and/or shaded forms. While a 3D trackball input controller device has been utilized for manipulating objects displayed in 3D representation, it is complex and expensive. Various techniques utilizing two-dimensional (2D) input controllers such as a mouse have been developed for manipulating objects displayed in 3D representation. A known technique utilizes graphically displayed X, Y, and Z sliders which are adjusted by the user (for example, with an input controller stick as a mouse) to indicate the amount of rotation about each axis independently. Typically, only one slider is adjusted at any given time. Another known technique involves the menu selection of the axis about which rotation is desired. An input controller such as a mouse is then moved in one dimension to indicate the amount of rotation. Still another technique involves holding down one of three buttons on a mouse or a keyboard to select the axis of rotation, and then moving a mouse in one dimension to indicate the amount of rotation. A still further technique involves selecting the object by clicking on it with the mouse pointer and again using the mouse pointer to drag a handle on the selected object in order to move, re-shape, re-size, or rotate the object. Oftentimes, with 3D objects, only one or two dimensions can be altered with any given handle and rotation only occurs around a central point in a world 3D space as opposed to rotation around the centerpoint (or other axis) of the 3D object itself (sometimes referred to as model space). An even further technique involves selecting a 3D object by clicking on it with the mouse pointer, using the mouse pointer to make a menu selection as to a predefined type of movement option desired and again using the mouse pointer to drag a handle on the selected object in order to define a movement of the selected predefined type of movement. Typically, with 3D objects, only one predefined type of movement is available at a time in what is commonly known as a modal form of operation.
An important consideration with known techniques for manipulating displayed objects represented in 3D form is the lack of kinesthetic correspondence (or stimulus-response compatibility) between the movement of the input controller device and the object movement or direction of object rotation. That is, the required movement of the input controller device does not provide the sense of directly manipulating the displayed object. Stated differently, known techniques for manipulating displayed objects represented in 3D form typically lack direct manipulation kinesthetic correspondence whereby the 3D displayed object being manipulated continuously moves (is continuously re-displayed) with the mouse controlled pointer directing the manipulation so that the pointer may remain on the same location of the displayed 3D object throughout the manipulation. Another consideration with known techniques is the inability to provide rotation about an arbitrary axis that includes X, Y, and Z components. A still further consideration is the inherent limitation of the modal form of 3D object manipulation which further separates the user's expectations regarding moving a real world 3D object from the experience of moving an image of the 3D object on a computer display due to having to either select between alternative manipulation modes and/or operate in different windows each containing different views of the object to be manipulated.